package org.example.springboot01.utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {/**
 * 对输入的字符串进行 MD5 加密
 *
 * @param input 待加密的字符串
 * @return 加密后的十六进制字符串
 */
public static String getMD5(String input) {
    try {
        // 获取 MD5 算法的 MessageDigest 实例
        MessageDigest md = MessageDigest.getInstance("MD5");
        // 将输入字符串转换为字节数组
        byte[] inputBytes = input.getBytes();
        // 计算消息摘要
        byte[] digest = md.digest(inputBytes);

        // 将字节数组转换为十六进制字符串
        StringBuilder sb = new StringBuilder();
        for (byte b : digest) {
            // 将每个字节转换为无符号整数并格式化为两位十六进制字符串
            sb.append(String.format("%02x", b & 0xff));
        }
        return sb.toString();
    } catch (NoSuchAlgorithmException e) {
        // 若指定的算法（MD5）不可用，打印异常堆栈信息
        e.printStackTrace();
        return null;
    }
}
}